﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ibba.src.norisk.DataAccess;
using ibba.src.norisk.BusinessEntities;

/*****************************************************************************************************************          
 Copyright © 2010 - Banco Itaú BBA S.A          
          
 ProdutoModalidadeBL : 
            
 Histórico de Alterações:      
 09/06/2010 - Leandra M Madureira	- Alteracao OS375720

 *****************************************************************************************************************/


namespace ibba.src.norisk.BusinessLogic
{
    public class ProdutoModalidadeBL
    {

        private ProdutoModalidadeDb _produtoModalidadeDb;
        private ProdutoModalidadeRepository _produtoModalidadeRepository;

        public ProdutoModalidadeBL()
        {
            _produtoModalidadeDb = new ProdutoModalidadeDb();
            _produtoModalidadeRepository = new ProdutoModalidadeRepository();
        }

        public List<ibba.src.norisk.DataContext.ProdutoModalidade> ObterProdutoModalidade()
        {

            return (_produtoModalidadeRepository.ObterProdutoModalidade());
        }

        public List<BaseCalculoRisco> ObterBaseCalculoRisco()
        {
            return (_produtoModalidadeDb.ObterBaseCalculoRisco());
        }

        public int Atualizar(BusinessEntities.ProdutoModalidade pProdutoModalidade, string cdUsuario)
        {
            #region linq
            //ibba.src.norisk.DataContext.ProdutoModalidade produtoDaBase = _produtoModalidadeRepository.Find(a => a.Id == pProdutoModalidade.Id);

            //if (produtoDaBase != null)
            //{

            //    produtoDaBase.Ativo = true;
            //    produtoDaBase.CodigoBaseCalculo = pProdutoModalidade.CodigoBaseCalculo;
            //    produtoDaBase.EhIntradia = pProdutoModalidade.EhIntradia;
            //    produtoDaBase.EhIsda = pProdutoModalidade.EhIsda;
            //    produtoDaBase.EhPre = pProdutoModalidade.EhPre;
            //    produtoDaBase.IdClasseProduto = pProdutoModalidade.IdClasseProduto;
            //    produtoDaBase.UtilizadoProcessamento = pProdutoModalidade.UtilizadoProcessamento;


            //    for (int i = 0; i < produtoDaBase.Parametros.Count; i++)
            //        for (int j = 0; j < pProdutoModalidade.Parametros.Count; j++)
            //        {
            //            if (produtoDaBase.Parametros[i].IdIdProdutoRisco == pProdutoModalidade.Parametros[j].IdIdProdutoRisco &&
            //                produtoDaBase.Parametros[i].IdParametro == pProdutoModalidade.Parametros[j].IdParametro)
            //            {

            //                produtoDaBase.Parametros[i].Valor = pProdutoModalidade.Parametros[j].Valor;

            //                j = pProdutoModalidade.Parametros.Count + 1;
            //            }
            //        }

            //    _produtoModalidadeRepository.SaveAll();

            //}

            //return 1;
            #endregion

            int retornoP = this.AtualizarParametro(pProdutoModalidade.Parametros, cdUsuario);
            int retorno = (_produtoModalidadeDb.Atualizar(pProdutoModalidade, cdUsuario));

            if (retorno < 0 && retornoP < 0)
            {
                return retorno;
            }

            return 1;
        }

        //OS375720 - Inicio
        public List<ibba.src.norisk.BusinessEntities.ParametroProdutoModalidade> ObterRelatorioParametroProduto(int pIdParametro)
        {

            return (_produtoModalidadeDb.ObterRelatorioParametroProduto(pIdParametro));
        }

        public int AtualizarParametro(List<ibba.src.norisk.BusinessEntities.ParametroProdutoModalidade> pParametroProdutoModalidade, string cdUsuario)
        {
            int retorno = 0;
            for (int i = 0; i < pParametroProdutoModalidade.Count; i++)
            {
                _produtoModalidadeDb.AtualizarParametro(pParametroProdutoModalidade[i].CodigoProdutoRisco, pParametroProdutoModalidade[i].CodigoParametro, pParametroProdutoModalidade[i].VlrParametro, cdUsuario);
            }
            retorno = 1;
            return retorno;
        }
        //OS375720 - Fim

        public List<ProdutoModalidadeLog> ListarProdutoModalidadeLog(string cdProduto, string cdModalidade)
        {
            return _produtoModalidadeDb.ListarProdutoModalidadeLog(cdProduto, cdModalidade);
        }
    }
}
